package com.ming.transaction.service;

import com.ming.transaction.common.Result;
import com.ming.transaction.entity.Dto.LoAndRiDto;
import com.ming.transaction.entity.Dto.PassWordDto;
import com.ming.transaction.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 陈仕健
 * @since 2023-04-27
 */
public interface IUserService extends IService<User> {

    /**
     * 用户登录注册接口
     * @param loAndRiDto
     * @return
     */
    Result loginRig(LoAndRiDto loAndRiDto);

    /**
     * 添加用户接口
     * @param user
     * @return
     */
    Result addUser(User user);

    /**
     * 修改用户接口
     * @param user
     * @return
     */
    Result editUser(User user);

    /**
     * 上传头像接口
     * @param file
     * @return
     * @throws IOException
     */
    Result uploadImage(MultipartFile file) throws IOException;

    /**
     * 下载头像接口
     * @param fileUUID
     * @throws IOException
     */
    void dowmloadImage(String fileUUID) throws IOException;

    /**
     * 管理员批量删除用户
     * @param ids
     * @return
     */
    Result deleteByIds(List<Integer> ids);

    /**
     * 管理员手动删除用户
     * @param id
     * @return
     */
    Result deleteById(Integer id);

    /**
     * 分页查询用户
     * @param pageNum
     * @param pageSize
     * @param nickname
     * @param number
     * @param phone
     * @param address
     * @return
     */
    Result pageSeach(Integer pageNum, Integer pageSize, String nickname, String number, String phone, String address);

    /**
     * 根据账号查询用户信息
     * @param number
     * @return
     */
    Result UserByNumber(String number);

    /**
     * 用户修改密码
     * @param passWordDto
     * @return
     */
    Result editPassword(PassWordDto passWordDto);
}
